import snappy
In this notebook we work with the infinite family of Legendrian links from Theorem 1.2.(i) whose Stein traces are all equal. First we load the surgery description of these links.
L=snappy.Manifold('surgery_description.lnk')
Then we show that all the knots (with short slopes) in the infinite family have different volumes and thus are non-isotopic. By the limit formula from Neumann-Zagier it follows that they are all non-isometric for any value of n.
for n in range(0,100):
L.dehn_fill([(-1-n,n),(1-n,n),(0,0)])
count=0
while count<10:
idf=L.identify()
if idf!=[]:
K=snappy.Manifold(idf[-1])
print(n,L,K.volume(verified=True),idf)
count=1000
else:
try:
vol=L.volume(verified=True)
print(n,L,vol,idf)
count=1000
except:
L.randomize()
count=count+1
Next, we verify that the Legendrian surgeries (for short slopes) are diffeomorphic. (Since the knots all have tb=1, the Legendrian surgery corresponds to a topological 0-surgery.)
def better_is_isometric_to(X,Y,index):
"""
Returns True if X and Y are isometric.
Returns False if X and Y have different homologies.
Returns 'unclear' if SnapPy cannot verify it.
The higher the index the harder SnapPy tries.
"""
w='unclear'
if X.homology()!=Y.homology():
w=False
if w=='unclear':
for i in (0,index):
try:
w=X.is_isometric_to(Y)
except RuntimeError:
pass
except snappy.SnapPeaFatalError:
pass
if w==True:
break
if w==False:
w='unclear'
X.randomize()
Y.randomize()
i=i+1
return w
K=snappy.Manifold('K10n4(0,1)')
for n in range(0,100):
L.dehn_fill([(-1-n,n),(1-n,n),(0,1)])
print(n,L,better_is_isometric_to(K,L,1000))
In addition, we verify that the contact (+1)-surgeries are all non-isometric by comparing their volumes:
def better_volume(M,index=100):
'''Computes the verified volume. Returns 'unclear' if SnapPy could not do it.'''
count=0
while count<index:
try:
return M.volume(verified=True)
except:
M.randomize()
count=count+1
return 'unclear'
K=snappy.Manifold('K10n4(2,1)')
print(K,K.volume(verified=True))
for n in range(1,100):
L.dehn_fill([(-1-n,n),(1-n,n),(2,1)])
print(n,L,better_volume(L))
We search for other equal fillings.
def gcd(a, b):
while b != 0:
a, b = b, a % b
return a
def coprime(a, b):
return gcd(a, b) == 1
K=snappy.Manifold('K10n4')
for p in range(-50,50):
for q in range(1,25):
if coprime(p,q):
K.dehn_fill((p,q))
for n in range(1,10):
L.dehn_fill([(-1-n,n),(1-n,n),(p,q)])
if better_is_isometric_to(K,L,100)==True:
print(L,K,'True')
So it seems that 0 is the only slopes where we have equal surgeries.